gusucode.com > 各种VC自绘控件源码程序 > 各种VC自绘控件源码/code/SkinControls(自绘MFC基本控件 )/SkinControls/Test/SkinDlg.cpp
// SkinDlg.cpp : 实现文件 // #include "stdafx.h" #include "Test.h" #include "SkinDlg.h" #include ".\skindlg.h" // CSkinDlg 对话框 IMPLEMENT_DYNAMIC(CSkinDlg, CSkinDialog) BEGIN_MESSAGE_MAP(CSkinDlg, CSkinDialog) ON_WM_RBUTTONDOWN() ON_WM_MEASUREITEM() END_MESSAGE_MAP() CSkinDlg::CSkinDlg(CWnd* pParent /*=NULL*/) : CSkinDialog(CSkinDlg::IDD, pParent) , m_splitter(VorSpliter) { } CSkinDlg::~CSkinDlg() { } void CSkinDlg::DoDataExchange(CDataExchange* pDX) { __super::DoDataExchange(pDX); DDX_Control(pDX, IDOK, m_btnOk); DDX_Control(pDX, IDCANCEL, m_btnCancel); DDX_Control(pDX, IDC_CHECK1, m_chk1); DDX_Control(pDX, IDC_RADIO1, m_rad1); DDX_Control(pDX, IDC_RADIO2, m_rad2); DDX_Control(pDX, IDC_COMBO1, m_com); DDX_Control(pDX, IDC_EDIT1, m_edt); DDX_Control(pDX, IDC_STATIC1, m_hl); DDX_Control(pDX, IDC_SLIDER1, m_slider); DDX_Control(pDX, IDC_PROGRESS1, m_progress); DDX_Control(pDX, IDC_vor, m_splitter); DDX_Control(pDX, IDC_LIST1, m_list); DDX_Control(pDX, IDC_RICHEDIT21, m_rich2); DDX_Control(pDX, IDC_TREE1, m_tree); } BOOL CSkinDlg::OnInitDialog() { __super::OnInitDialog(); SetBorderImage(_T("Res\\Test\\dlg_border_tl.bmp"),_T("Res\\Test\\dlg_border_tm.bmp"),_T("Res\\Test\\dlg_border_tr.bmp"), _T("Res\\Test\\dlg_border_ml.bmp"),_T("Res\\Test\\dlg_border_mr.bmp"),_T("Res\\Test\\dlg_border_bl.bmp"), _T("Res\\Test\\dlg_border_bm.bmp"),_T("Res\\Test\\dlg_border_br.bmp")); LoadCloseImage(_T("Res\\test\\dlg_close2.bmp")); LoadMinImage(_T("Res\\test\\dlg_min.bmp")); LoadMaxImage(_T("Res\\test\\dlg_max.bmp")); LoadResImage(_T("Res\\test\\dlg_resore.bmp")); m_Scroll.Load(_T("res\\Common\\scroll.bmp"), CXIMAGE_FORMAT_BMP); m_btnOk.SetButtonImage(_T("Res\\Common\\btn_back.png"), CXIMAGE_FORMAT_PNG); m_btnCancel.SetButtonImage(_T("Res\\Common\\btn_back.png"), CXIMAGE_FORMAT_PNG); m_chk1.SetCheckImage(_T("Res\\test\\check.bmp"), CXIMAGE_FORMAT_BMP); m_rad1.SetRadioImage(_T("Res\\test\\radio.bmp"), CXIMAGE_FORMAT_BMP); m_rad2.SetRadioImage(_T("Res\\test\\radio.bmp"), CXIMAGE_FORMAT_BMP); m_com.SetComboBtnImage(_T("Res\\test\\arrow.bmp"), CXIMAGE_FORMAT_BMP); m_hl.SetHyperLinkUrl(_T("http://www.baidu.com")); m_edt.SetPromptText(_T("编辑框")); m_progress.SetProgressBackImage(_T("Res\\test\\luminance.png"), CXIMAGE_FORMAT_PNG); m_slider.SetBackImage(_T("Res\\test\\hue.png"), CXIMAGE_FORMAT_PNG); m_slider.SetThumbImage(_T("Res\\test\\thumb.png"), CXIMAGE_FORMAT_PNG); m_splitter.SetVorSplitterImage(_T("Res\\Test\\dlg_border_tm.bmp"),CXIMAGE_FORMAT_BMP); m_splitter.SetSplitterRange(10, 500); m_list.SetHeaderImage(_T("Res\\Test\\headctrl.bmp"),CXIMAGE_FORMAT_BMP); m_list.SetSeparatorImage(_T("Res\\Test\\head_separator.bmp"),CXIMAGE_FORMAT_BMP); CString str; m_list.SetRedraw(FALSE); for (WORD i=0;i<3;i++) { str.Format(_T("column%d"),i); m_list.InsertColumn(i, str,LVCFMT_LEFT, 100); } m_list.SetRedraw(TRUE); for (WORD i=0;i<10;i++) { str.Format(_T("column%d"),i); m_list.InsertItem(i, str); for (WORD j=1;j<3;j++) { m_list.SetItemText(i, j, str); } } SkinSB_InitH(m_list.m_hWnd, m_Scroll.MakeBitmap()); m_tree.SetPlusMinusImage(_T("res\\test\\PlusMinus.bmp"), CXIMAGE_FORMAT_BMP); for (WORD i=0;i<10;i++) { CString str; str.Format(_T("item%d"),i); m_tree.InsertItem(str, 0, 0); } SkinSB_InitH(m_tree.m_hWnd, m_Scroll.MakeBitmap()); m_rich2.InsertImage(_T("Res\\test\\system_msg.bmp")); m_rich2.InsertGif(_T("Res\\test\\0.gif")); SkinSB_InitH(m_rich2.m_hWnd, m_Scroll.MakeBitmap()); return TRUE; } void CSkinDlg::OnRButtonDown(UINT nFlags, CPoint point) { CSkinMenu menu; menu.CreatePopupMenu(); menu.AppendMenu(0, 0, _T("menu1")); menu.AppendMenu(0, 1, _T("menu2")); menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(0, 2, _T("menu3")); CPoint pt; GetCursorPos(&pt); menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,pt.x,pt.y,this); menu.DestroyMenu(); __super::OnRButtonDown(nFlags, point); } void CSkinDlg::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) { m_list.MeasureItem(lpMeasureItemStruct); __super::OnMeasureItem(nIDCtl, lpMeasureItemStruct); }